To use QuickTime, you need to understand some concepts that are related to time-based data: atoms, media structures, components, time management, and sprites. They are briefly explained in this section.
QT atoms are basic containers that QuickTime uses to construct hierarchical data structures. A newly created QT atom is like the root of a tree. Each subsequent QT atom is contained in it and contains either data or other atoms. If a QT atom contains other atoms, it is called a parent atom and the atoms it contains are called its child atoms. If a QT atom contains data, it is called a leaf atom. Applications and other kinds of software can also use the QT atom architecture to store data. For further information about QT atoms, see "Movie Toolbox: Fundamentals."
Traditional video consists of a continuous stream of data. A QuickTime movie can be similarly constructed, but it need not be: a QuickTime movie may consist of streams of data taken from different sources, such as analog video, still images stored on CD-ROM, and MIDI music. The movie is not the medium; it is the organizing principle.
QuickTime movies usually consist of several tracks. A track does not contain movie data; it contains only references to data that are stored elsewhere as images, sounds, or other media types. These data references constitute the track's media structure. Each track contains a single media structure and an edit list that arranges the media structure into a time sequence. Media structures and edit lists are implemented as QT atoms.
QuickTime supports plug-in components that free applications from needing to know about all the technologies and devices that QuickTime works with. Many QuickTime services, such as image compression and decompression, are provided by components. A component contains code, which can be made available globally to the whole system or locally to a particular application. Each QuickTime component implements a defined set of features and presents specific interfaces to the technology it supports and to its client applications. Applications are thereby isolated from the details of implementing and managing various technologies.
QuickTime 3 is supplied with about 180 built-in components. It also contains an API that lets you create new components. For example, you could create a component to support a special data encryption algorithm. Multiple applications could then perform encryption by connecting to your component instead of having to implement the algorithm themselves.
Applications gain access to components by calling the system-level Component Manager. The Component Manager lets you define and register types of components and communicate with components using a standard interface. Once an application is connected to a component, it calls the component directly. When you create a new component class you define a standard function-level interface for that type. This means that a variety of applications can access your component with confidence that it will work.
The Component Manager and the process of building new components are described in "Component Manager."
Time management is an important and sometimes complex part of the implementation of QuickTime movies. For many movies, the correct play rate is the rate at which human actions appear natural and objects fall with normal acceleration. But what is the play rate of a movie that shows spreadsheet data charted over time or a map of the earth that recapitulates continental drift? This problem is deepened by the differing clock speeds of various platforms and the need to decompress data in real time, all of which affect time scales.
To manage the time dimension of movies, QuickTime defines time coordinate systems, which anchor movies and their media data structures to a common temporal reality, the second. A time coordinate system contains a time scale that provides the translation between real time and the apparent time in a movie. Time scales are marked in time units. The number of units that pass per second quantifies the scale--that is, a time scale of 26 means that 26 units pass per second and each time unit is 1/26 of a second. A time coordinate system also contains a duration, which is the length of a movie or a media structure in terms of the number of time units it contains. A particular point in a movie can then be identified by the number of time units elapsed to that point. Each track in a movie contains a time offset and a duration, which determine when the track begins playing and for how long.
Each media structure has its own time scale, which determines its number of samples per second. The Movie Toolbox maps each type of media data from the movie's time coordinate system to the media structure's time coordinate system.
Time bases and time coordinate systems are described in "Movie Toolbox: Time and Space."
A sprite is an animated graphic created by QuickTime. With traditional video animation, you describe a frame by specifying the color of each pixel. With sprite animation you describe a frame by specifying the images that appear at various locations.
Each sprite has properties that describe its location and appearance at a given time. During an animation sequence, the application modifies the sprite's properties to cause it to change its appearance and move around the screen. Sprites may be mixed with still-image graphics to produce a wide variety of effects while using relatively little memory.